package com.tsu.mall.order.Controller;

import com.ramostear.captcha.HappyCaptcha;
import com.tsu.mall.common.VO.LayuiTableVO;
import com.tsu.mall.common.service.IMemberService;
import com.tsu.mall.common.util.RequestUtil;
import com.tsu.mall.common.util.StringDbutil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

@Controller
@RequestMapping("/")
public class LoginController {
    @Autowired
    private IMemberService iMemberService;
    @GetMapping("/login")
    public String login() {
        return "login";
    }

//验证码校验
    @PostMapping("/verify")
    @ResponseBody
    public LayuiTableVO verify(String code,HttpServletRequest request){
        LayuiTableVO vo = new LayuiTableVO();
        //Verification Captcha
        boolean flag = HappyCaptcha.verification(request,code,true);//忽略大小写，强校验则为false
        if(flag){//正确
            HappyCaptcha.remove(request);
        }else{
            vo.setCode(1);
            vo.setMsg("验证码输入错误!");
        }
        return vo;
    }


    @PostMapping("/login")
    @ResponseBody
    public LayuiTableVO check(String accountNumber, String password){
        LayuiTableVO vo=new LayuiTableVO();

        //对密码进行加密之后，再与数据库中数据进行比较
        password= StringDbutil.md5(password);

        Boolean check=iMemberService.check(accountNumber,password);
        Object msg= RequestUtil.getSession().getAttribute("msg");
        if (msg != null) {//说明登录错误超过五次
            vo.setCode(1);
            vo.setMsg((String) msg);
        }else {//登录错误没超过五次-判断会员信息正误
            if(check){
                vo.setData(new String("/index"));//正确-返回首页
                return vo;
            }else{
                vo.setCode(1);
                vo.setMsg("用户名或者密码错误!");
                vo.setData(new String("/login"));//错误-跳转登录
            }
        }
        return vo;
    }

    @GetMapping("/lan")
    public String lan(String lan,HttpServletRequest request){
        //修改后台语言 记录在Session中
        //从哪个请求地址发起的这次请求
        String url=request.getHeader("Referer");
        //https://localhost:8081/login
        //处理Url吧域名 端口号都去掉 ，只保留当前系统的请求地址
        url=url.substring(8);
        url=url.substring(url.indexOf("/"));
        //根据lan参数 保存到当前Session
        RequestUtil.setLan(lan);
        //再跳回原请求地址
        return "redirect:"+url;
    }

}
